package com.sys.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密工具类
 */
public class MD5Util {

    /**
     * 对字符串进行MD5加密
     *
     * @param input 待加密的字符串
     * @return MD5加密后的字符串
     */
    public static String encrypt(String input) {
        try {
            // 获取MD5摘要算法的 MessageDigest 对象
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 使用指定的字节更新摘要
            md.update(input.getBytes("UTF-8"));
            // 获得密文
            byte[] digest = md.digest();
            // 把密文转换成十六进制的字符串形式
            StringBuilder sb = new StringBuilder();
            for (byte b : digest) {
                sb.append(String.format("%02x", b & 0xff));
            }
            return sb.toString();
        } catch (Exception e) {
            // 在正常情况下，"MD5"算法是可用的，所以这个异常不太可能抛出
            throw new RuntimeException("MD5 algorithm not found", e);
        }
    }
}